CS 50 Dynamic Memory Allocation



the variable we need to named, mostly are at the stack.
Dynamic allocated memory comes from a pool of memory known as the heap.
Prior to this point, all memory we've been working with has been coming from a pool of memory known as the stack.

// statically obtain an integer
int x;
// dyanmically obtain an integer
int *px = malloc(4); // 8 * 4 = 32;   4bytes 32int
         // malloc(sizeof(int));

// array of floats on the stack
float stack_array[x];

// array of floats on the heap
float* heap_array = malloc(x * sizeof(float));

if you use dynamic memory allocation, you may use free(), or it will result memory leak.

char* word = malloc(50 * sizeof(char));
// do stuff with word

// now we're done working with that block
free(word);
#cs50 #heap #stack #pointer







你可能感興趣的文章

寫 PRD 是為了找對問題並解決問題

寫 PRD 是為了找對問題並解決問題

透過 EventBus 解決 TransactionTooLargeException 問題

透過 EventBus 解決 TransactionTooLargeException 問題

How to Set Up Firewall with UFW on Ubuntu 20.04

How to Set Up Firewall with UFW on Ubuntu 20.04






留言討論